home *** CD-ROM | disk | FTP | other *** search
- /*
- * ExprItems.h - class definitions for ExprItem's.
- *
- * Copyright (C) 1992, Christoph Streit (streit@iam.unibe.ch)
- * University of Berne, Switzerland
- * All rights reserved.
- *
- * This software may be freely copied, modified, and redistributed
- * provided that this copyright notice is preserved on all copies.
- *
- * You may not distribute this software, in whole or in part, as part of
- * any commercial product without the express consent of the authors.
- *
- * There is no warranty or other guarantee of fitness of this software
- * for any purpose. It is provided solely "as is".
- *
- */
-
- #ifndef ExprItems_H
- # define ExprItems_H
-
- #include <math.h>
- #include "mathutilities.h"
- #include "Expression.h"
- #include "Name.h"
-
- //___________________________________________________________ Variable
-
- class Variable : public ExprItem
- {
- public:
- Variable(const Name&, Value*);
- ~Variable();
-
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
-
- private:
- Value *theValue;
- Name varname; // we need the name for the print function
- };
-
- //___________________________________________________________ Uminus
- // unary minus
-
- class Uminus : public ExprItem
- {
- public:
- Uminus();
- ~Uminus();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Not
-
- class Not : public ExprItem
- {
- public:
- Not();
- ~Not();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Or
-
- class Or : public ExprItem
- {
- public:
- Or();
- ~Or();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ And
-
- class And : public ExprItem
- {
- public:
- And();
- ~And();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Neq
-
- class Neq : public ExprItem
- {
- public:
- Neq();
- ~Neq();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Eq
-
- class Eq : public ExprItem
- {
- public:
- Eq();
- ~Eq();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Lt
-
- class Lt : public ExprItem
- {
- public:
- Lt();
- ~Lt();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Leq
-
- class Leq : public ExprItem
- {
- public:
- Leq();
- ~Leq();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Gt
-
- class Gt : public ExprItem
- {
- public:
- Gt();
- ~Gt();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Geq
-
- class Geq : public ExprItem
- {
- public:
- Geq();
- ~Geq();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Add
-
- class Add : public ExprItem
- {
- public:
- Add();
- ~Add();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Sub
-
- class Sub : public ExprItem
- {
- public:
- Sub();
- ~Sub();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Mul
-
- class Mul : public ExprItem
- {
- public:
- Mul();
- ~Mul();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Div
-
- class Div : public ExprItem
- {
- public:
- Div();
- ~Div();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Mod
-
- class Mod : public ExprItem
- {
- public:
- Mod();
- ~Mod();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Sin
-
- class Sin : public ExprItem
- {
- public:
- Sin();
- ~Sin();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Cos
-
- class Cos : public ExprItem
- {
- public:
- Cos();
- ~Cos();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Tan
-
- class Tan : public ExprItem
- {
- public:
- Tan();
- ~Tan();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Asin
-
- class Asin : public ExprItem
- {
- public:
- Asin();
- ~Asin();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Acos
-
- class Acos : public ExprItem
- {
- public:
- Acos();
- ~Acos();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Atan
-
- class Atan : public ExprItem
- {
- public:
- Atan();
- ~Atan();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Abs
-
- class Abs : public ExprItem
- {
- public:
- Abs();
- ~Abs();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Sqrt
-
- class Sqrt : public ExprItem
- {
- public:
- Sqrt();
- ~Sqrt();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Pow
-
- class Pow : public ExprItem
- {
- public:
- Pow();
- ~Pow();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Exp
-
- class Exp : public ExprItem
- {
- public:
- Exp();
- ~Exp();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Log
-
- class Log : public ExprItem
- {
- public:
- Log();
- ~Log();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Log10
-
- class Log10 : public ExprItem
- {
- public:
- Log10();
- ~Log10();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Rand
-
- class Rand : public ExprItem
- {
- public:
- Rand();
- ~Rand();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- //___________________________________________________________ Gauss
-
- class Gauss : public ExprItem
- {
- public:
- Gauss();
- ~Gauss();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
-
- private:
- int Nrand;
- real GaussAdd, GaussFac;
- };
-
- //___________________________________________________________ If
-
- class If : public ExprItem
- {
- public:
- If();
- ~If();
- void process(ValueStack*);
- void print(ValueStack*);
- int params();
- ExprItem* copy();
- };
-
- class Discrete;
-
- #endif // ExprItems_H
-